package com.aplink.generic.util.objectrule;

import com.aplink.generic.pojo.GenericObject;

import java.util.ArrayList;

public class TargetRuleCollection {

    private ArrayList<TargetRule> arrTargetRules;
    private String defaultTarget;

    public TargetRuleCollection() {
        this.defaultTarget = "";
        this.arrTargetRules = new ArrayList<TargetRule>();
    }

    public TargetRuleCollection( String _defaultTarget,
                                 ArrayList<TargetRule> _arrTargetRules ) {
        this.defaultTarget = _defaultTarget;

        this.arrTargetRules = new ArrayList<TargetRule>();
        this.arrTargetRules = _arrTargetRules;

    }

    public ArrayList<TargetRule> getArrTargetRules() {
        return this.arrTargetRules;
    }

    public String getDefaultTarget() {
        return this.defaultTarget;
    }

    public String getTargetBaseOnPassedGenericObject( GenericObject genericObject ) {

        for ( final TargetRule targetRule : this.arrTargetRules ) {
            final boolean isSatisfied = targetRule
                    .isSatisfiedCondition( genericObject );
            if ( isSatisfied ) {
                return targetRule.getTargetActivity();
            }
        }

        return this.defaultTarget;
    }

    public void setArrTargetRules( ArrayList<TargetRule> arrTargetRules ) {
        this.arrTargetRules = arrTargetRules;
    }

    public void setDefaultTarget( String defaultTarget ) {
        this.defaultTarget = defaultTarget;
    }

}
